<html xmlns="http://www.w3.org/1999/xhtml"  
      xmlns:h="http://java.sun.com/jsf/html"  
      xmlns:f="http://java.sun.com/jsf/core"  
      xmlns:p="http://primefaces.org/ui"
      xmlns:ui="http://java.sun.com/jsf/facelets"
      xmlns:pe="http://primefaces.org/ui/extensions"> 

    <ui:composition template="../index.xhtml">
        <ui:define name="conteudo">
            <!--**************************************************************-->
            <!--                       TABELA DE PRODUTO                      -->
            <!--**************************************************************-->
            <h:form id="tituloPagina">
                <h:outputText value="Cadastro de produtos"/>
            </h:form>
            <h:form id="formTabela">
                <p:growl id="grow"/>
                <p:dataTable id="listContasPagar" var="forn" value="#{produtoControler.listProdutos}" widgetVar="carsTableAtivos" 
                             rowKey="#{forn.id}" selectionMode="single"  emptyMessage="Nenhum registro foi encontrado!" paginator="true" rows="10" rowsPerPageTemplate="5,10,15,#{produtoControler.listProdutos.size()}">
                    <f:facet name="header" >  
                        <p:outputPanel>  
                            <h:outputText value="Digite para pesquisar " />
                            <p:inputText id="globalFilter" onkeyup="carsTableAtivos.filter()" style="width:150px" /> 
                            <p:commandButton value="Novo" accesskey="N" onclick="dlgProduto.show()" action="#{produtoControler.inicializaObj()}" update=":formAdd"/>
                        </p:outputPanel>  
                    </f:facet>
                    <p:column headerText="Ações" footerText="Ações" filterMatchMode="Ações" style="width: 60px;">
                        <p:commandButton action="#{produtoControler.setProduto(forn)}" onclick="dlgProduto.show();" update=":formAdd"
                                         image="ui-icon ui-icon-pencil" title="alterar" />
                        <p:commandButton image="ui-icon ui-icon-close" title="excluir" update=":formAdd"
                                         action="#{produtoControler.setProduto(forn)}" onclick="confirmationExcluirgrupo.show();"/>
                    </p:column>
                    <p:column filterBy="#{forn.gtin}" headerText="Código Barras" footerText="Código Barras" sortBy="${forn.gtin}">    
                        <h:outputText value="${forn.gtin}" />  
                    </p:column>  
                    <p:column filterBy="#{forn.codigoInterno}" headerText="Código Interno" footerText="Código Interno" sortBy="${forn.codigoInterno}">    
                        <h:outputText value="${forn.codigoInterno}" />  
                    </p:column>  
                    <p:column filterBy="#{forn.descricao}" headerText="Descrição" footerText="Descrição" sortBy="${forn.descricao}">    
                        <h:outputText value="${forn.descricao}" />  
                    </p:column>  
                    <p:column filterBy="#{forn.idGrupo.descricao}" headerText="Grupo" footerText="Grupo" sortBy="${forn.idGrupo.descricao}">    
                        <h:outputText value="${forn.idGrupo.descricao}" />  
                    </p:column>  
                    <p:column filterBy="#{forn.valorVenda}" headerText="Valor venda" footerText="Valor venda" sortBy="${forn.valorVenda}">    
                        <h:outputText value="${forn.valorVenda}" >
                            <f:convertNumber type="currency"/>
                        </h:outputText>
                    </p:column>  
                </p:dataTable>
            </h:form>
            <p:dialog id="dialogFunc" header="Novo produto" widgetVar="dlgProduto" modal="true" resizable="false" appendToBody="true">  
                <h:form id="formAdd">
                    <p:messages id="mgs"/>
                    <h:inputHidden value="#{produtoControler.produto.id}"/>
                    <h:panelGrid columns="4">

                        <h:panelGrid columns="1">
                            <h:outputText value="Código de Barras:"/>
                            <p:inputText id="gtin" value="#{produtoControler.produto.gtin}" disabled="#{produtoControler.gtin}" maxlength="13" >
                                <p:ajax event="blur" update="formAdd" listener="#{produtoControler.gtinCodInterno()}"/>
                            </p:inputText>
                        </h:panelGrid>

                        <h:panelGrid columns="1">
                            <h:outputText value="Código de Interno:"/>
                            <p:inputText id="interno" value="#{produtoControler.produto.codigoInterno}"  disabled="#{produtoControler.codInterno}">
                                <p:ajax event="blur" update="formAdd" listener="#{produtoControler.gtinCodInterno()}" process="@this"/>
                            </p:inputText>
                        </h:panelGrid>

                        <h:panelGrid columns="1">
                            <h:outputText value="Descrição:"/>
                            <p:inputText value="#{produtoControler.produto.descricao}" required="true" requiredMessage="Informe a descrição do produto!!" >
                                <p:ajax event="blur" update="descrPdv" listener="#{produtoControler.preecheDescricaoPdv()}"/>
                            </p:inputText>
                        </h:panelGrid>

                        <h:panelGrid columns="1">
                            <h:outputText value="Descrição PDV:"/>
                            <p:inputText value="#{produtoControler.produto.descricaoPdv}"  maxlength="38" id="descrPdv"/>
                        </h:panelGrid>

                        <h:panelGrid columns="1">
                            <h:outputText value="Unidade:"/>
                            <p:selectOneMenu value="#{produtoControler.produto.idUnidadeProduto.id}" tabindex="3" style="width: 150px;">
                                <f:selectItem itemValue="0" itemLabel="Selecione" />
                                <f:selectItems value="#{unidadeMedidaControler.listUnidade}" var="uni" itemValue="#{uni.id}" itemLabel="#{uni.nome}"/> 
                            </p:selectOneMenu>
                        </h:panelGrid>

                        <h:panelGrid columns="1">
                            <h:outputText value="Preço de venda:"/>
                            <pe:inputNumber value="#{produtoControler.produto.valorVenda}" minValue="0.00" required="true" requiredMessage="O preço e venda é obrigatório!"/>
                        </h:panelGrid>

                        <h:panelGrid columns="1">
                            <h:outputText value="Estoque:"/>
                            <pe:inputNumber value="#{produtoControler.produto.qtdEstoque}" minValue="-10000.00" disabled="true"/>
                        </h:panelGrid>

                        <h:panelGrid columns="1">
                            <h:outputText value="ICMS:"/>
                            <p:selectOneMenu value="#{produtoControler.produto.ecfIcmsSt}" style="width: 150px;">  
                                <f:selectItem itemValue="0" itemLabel="Selecione" />
                                <f:selectItems value="#{aliquotaControler.listAliquotas}" var="icm" itemValue="#{icm.descricao}" itemLabel="#{icm.descricao} - #{icm.obs}"/> 
                            </p:selectOneMenu>
                        </h:panelGrid>

                        <h:panelGrid columns="1">
                            <h:outputText value="NCM:"/>
                            <p:inputText value="#{produtoControler.produto.ncm}" />
                        </h:panelGrid>

                        <h:panelGrid columns="1">
                            <h:outputText value="Grupo:"/>
                            <p:selectOneMenu value="#{produtoControler.produto.idGrupo.id}" style="width: 150px;">  
                                <f:selectItem itemValue="0" itemLabel="Selecione" />
                                <f:selectItems value="#{grupoControler.listGrupos}" var="grup" itemValue="#{grup.id}" itemLabel="#{grup.descricao}"/> 
                                <p:ajax event="change" update="subGrupo" listener="#{produtoControler.populaComboSubgrupo()}"/>
                            </p:selectOneMenu>
                        </h:panelGrid>

                        <h:panelGrid columns="1">
                            <h:outputText value="Sub-Grupo:"/>
                            <p:selectOneMenu value="#{produtoControler.produto.idSubgrupo.id}" id="subGrupo" style="width: 150px;">  
                                <f:selectItem itemValue="0" itemLabel="Selecione"/>
                                <f:selectItems value="#{produtoControler.listSubGrupos}" var="sb" itemValue="#{sb.id}" itemLabel="#{sb.descricao}"/> 
                            </p:selectOneMenu>
                        </h:panelGrid>
                    </h:panelGrid>

                    <p:panel header="Tributos do produto">
                        <h:panelGrid columns="2">
                            <h:panelGrid columns="1">
                                <h:outputText value="Origem da mercadoria"/>
                                <p:selectOneMenu value="#{produtoControler.origemMercadoria}" style="width: 150px;" >
                                    <f:selectItem itemValue="0" itemLabel="0 - Nacional"/>
                                    <f:selectItem itemValue="1" itemLabel="1 - Estrangeira - Importação direta"/>
                                    <f:selectItem itemValue="2" itemLabel="2 - Estrangeira - Adquirida no mercado interno"/>
                                </p:selectOneMenu>
                            </h:panelGrid>

                            <h:panelGrid columns="1">
                                <h:outputText value="TRIBUTAÇÃO PELO ICMS"/>
                                <p:selectOneMenu value="#{produtoControler.produto.cst}">
                                    <f:selectItem itemValue="00" itemLabel="00 - Tributada integralmente"/>
                                    <f:selectItem itemValue="10" itemLabel="10 - Tributada e com cobrança do ICMS por substituição tributária "/>
                                    <f:selectItem itemValue="20" itemLabel="20 - Com redução de base de cálculo"/>
                                    <f:selectItem itemValue="30" itemLabel="30 - Isenta ou não tributada e com cobrança do ICMS por substituição tributária"/>
                                    <f:selectItem itemValue="40" itemLabel="40 - Isenta"/>
                                    <f:selectItem itemValue="41" itemLabel="41 - Não tributada "/>
                                    <f:selectItem itemValue="50" itemLabel="50 - Suspensão "/>
                                    <f:selectItem itemValue="51" itemLabel="51 - Diferimento"/>
                                    <f:selectItem itemValue="60" itemLabel="60 - ICMS cobrado anteriormente por substituição tributária"/>
                                    <f:selectItem itemValue="70" itemLabel="70 - Com redução de base de cálculo e cobrança do ICMS por substituição tributária "/>
                                    <f:selectItem itemValue="90" itemLabel="90 - Outras "/>
                                </p:selectOneMenu>
                            </h:panelGrid>

                        </h:panelGrid>
                    </p:panel>
                    <h:panelGrid columns="1">
                        <h:panelGrid columns="3">
                            <p:commandButton value="Salvar" accesskey="S" action="#{produtoControler.salvar()}" update="@form :formTabela" onclick="statusDialog.show();" onsuccess="statusDialog.hide();"/>
                            <p:commandButton value="Novo" accesskey="N" update=":formAdd" action="#{produtoControler.inicializaObj()}" process="@this"/>
                            <p:commandButton value="Cancelar" accesskey="C" onclick="dlgProduto.hide()" process="@this"/>
                        </h:panelGrid>
                    </h:panelGrid>
                </h:form>
                <!-- confirmações  de exclusão-->
                <h:form>
                    <p:confirmDialog id="confirmDialog" message="Confirma excluir este grupo?" appendToBody="true"
                                     header="Atenção!!!" severity="alert" widgetVar="confirmationExcluirgrupo" > 
                        <p:commandButton id="confirm" value="Sim" oncomplete="confirmationExcluirgrupo.hide()"  
                                         actionListener="#{produtoControler.excluir()}" update=":formTabela"/>  
                        <p:commandButton id="decline" value="Cancelar" onclick="confirmationExcluirgrupo.hide()" type="button" />   
                    </p:confirmDialog>
                </h:form>
            </p:dialog>
        </ui:define>
    </ui:composition>
</html>